/**
 */
package spem;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see spem.SpemFactory
 * @model kind="package"
 * @generated
 */
public interface SpemPackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "spem";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "www.daoanhvu.com/spe/spem";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "spem";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	SpemPackage eINSTANCE = spem.impl.SpemPackageImpl.init();

	/**
	 * The meta object id for the '{@link spem.impl.SPEMDiagramImpl <em>SPEM Diagram</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see spem.impl.SPEMDiagramImpl
	 * @see spem.impl.SpemPackageImpl#getSPEMDiagram()
	 * @generated
	 */
	int SPEM_DIAGRAM = 0;

	/**
	 * The feature id for the '<em><b>Element</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SPEM_DIAGRAM__ELEMENT = 0;

	/**
	 * The number of structural features of the '<em>SPEM Diagram</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SPEM_DIAGRAM_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link spem.impl.SemanticElementImpl <em>Semantic Element</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see spem.impl.SemanticElementImpl
	 * @see spem.impl.SpemPackageImpl#getSemanticElement()
	 * @generated
	 */
	int SEMANTIC_ELEMENT = 1;

	/**
	 * The feature id for the '<em><b>Childrent</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SEMANTIC_ELEMENT__CHILDRENT = 0;

	/**
	 * The feature id for the '<em><b>Parent</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SEMANTIC_ELEMENT__PARENT = 1;

	/**
	 * The feature id for the '<em><b>Diagram</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SEMANTIC_ELEMENT__DIAGRAM = 2;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SEMANTIC_ELEMENT__NAME = 3;

	/**
	 * The feature id for the '<em><b>Layout</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SEMANTIC_ELEMENT__LAYOUT = 4;

	/**
	 * The number of structural features of the '<em>Semantic Element</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SEMANTIC_ELEMENT_FEATURE_COUNT = 5;

	/**
	 * The meta object id for the '{@link spem.impl.MethodPluginImpl <em>Method Plugin</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see spem.impl.MethodPluginImpl
	 * @see spem.impl.SpemPackageImpl#getMethodPlugin()
	 * @generated
	 */
	int METHOD_PLUGIN = 2;

	/**
	 * The feature id for the '<em><b>Childrent</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int METHOD_PLUGIN__CHILDRENT = SEMANTIC_ELEMENT__CHILDRENT;

	/**
	 * The feature id for the '<em><b>Parent</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int METHOD_PLUGIN__PARENT = SEMANTIC_ELEMENT__PARENT;

	/**
	 * The feature id for the '<em><b>Diagram</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int METHOD_PLUGIN__DIAGRAM = SEMANTIC_ELEMENT__DIAGRAM;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int METHOD_PLUGIN__NAME = SEMANTIC_ELEMENT__NAME;

	/**
	 * The feature id for the '<em><b>Layout</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int METHOD_PLUGIN__LAYOUT = SEMANTIC_ELEMENT__LAYOUT;

	/**
	 * The feature id for the '<em><b>Relationships</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int METHOD_PLUGIN__RELATIONSHIPS = SEMANTIC_ELEMENT_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Method Plugin</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int METHOD_PLUGIN_FEATURE_COUNT = SEMANTIC_ELEMENT_FEATURE_COUNT + 1;

	/**
	 * The meta object id for the '{@link spem.impl.RoleDefinitionImpl <em>Role Definition</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see spem.impl.RoleDefinitionImpl
	 * @see spem.impl.SpemPackageImpl#getRoleDefinition()
	 * @generated
	 */
	int ROLE_DEFINITION = 3;

	/**
	 * The feature id for the '<em><b>Childrent</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ROLE_DEFINITION__CHILDRENT = SEMANTIC_ELEMENT__CHILDRENT;

	/**
	 * The feature id for the '<em><b>Parent</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ROLE_DEFINITION__PARENT = SEMANTIC_ELEMENT__PARENT;

	/**
	 * The feature id for the '<em><b>Diagram</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ROLE_DEFINITION__DIAGRAM = SEMANTIC_ELEMENT__DIAGRAM;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ROLE_DEFINITION__NAME = SEMANTIC_ELEMENT__NAME;

	/**
	 * The feature id for the '<em><b>Layout</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ROLE_DEFINITION__LAYOUT = SEMANTIC_ELEMENT__LAYOUT;

	/**
	 * The number of structural features of the '<em>Role Definition</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ROLE_DEFINITION_FEATURE_COUNT = SEMANTIC_ELEMENT_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link spem.impl.TaskDefinitionImpl <em>Task Definition</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see spem.impl.TaskDefinitionImpl
	 * @see spem.impl.SpemPackageImpl#getTaskDefinition()
	 * @generated
	 */
	int TASK_DEFINITION = 4;

	/**
	 * The feature id for the '<em><b>Childrent</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TASK_DEFINITION__CHILDRENT = SEMANTIC_ELEMENT__CHILDRENT;

	/**
	 * The feature id for the '<em><b>Parent</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TASK_DEFINITION__PARENT = SEMANTIC_ELEMENT__PARENT;

	/**
	 * The feature id for the '<em><b>Diagram</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TASK_DEFINITION__DIAGRAM = SEMANTIC_ELEMENT__DIAGRAM;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TASK_DEFINITION__NAME = SEMANTIC_ELEMENT__NAME;

	/**
	 * The feature id for the '<em><b>Layout</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TASK_DEFINITION__LAYOUT = SEMANTIC_ELEMENT__LAYOUT;

	/**
	 * The number of structural features of the '<em>Task Definition</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TASK_DEFINITION_FEATURE_COUNT = SEMANTIC_ELEMENT_FEATURE_COUNT + 0;

	/**
	 * The meta object id for the '{@link spem.impl.RelationshipImpl <em>Relationship</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see spem.impl.RelationshipImpl
	 * @see spem.impl.SpemPackageImpl#getRelationship()
	 * @generated
	 */
	int RELATIONSHIP = 5;

	/**
	 * The feature id for the '<em><b>Source</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int RELATIONSHIP__SOURCE = 0;

	/**
	 * The feature id for the '<em><b>Target</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int RELATIONSHIP__TARGET = 1;

	/**
	 * The number of structural features of the '<em>Relationship</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int RELATIONSHIP_FEATURE_COUNT = 2;


	/**
	 * Returns the meta object for class '{@link spem.SPEMDiagram <em>SPEM Diagram</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>SPEM Diagram</em>'.
	 * @see spem.SPEMDiagram
	 * @generated
	 */
	EClass getSPEMDiagram();

	/**
	 * Returns the meta object for the containment reference '{@link spem.SPEMDiagram#getElement <em>Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Element</em>'.
	 * @see spem.SPEMDiagram#getElement()
	 * @see #getSPEMDiagram()
	 * @generated
	 */
	EReference getSPEMDiagram_Element();

	/**
	 * Returns the meta object for class '{@link spem.SemanticElement <em>Semantic Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Semantic Element</em>'.
	 * @see spem.SemanticElement
	 * @generated
	 */
	EClass getSemanticElement();

	/**
	 * Returns the meta object for the containment reference list '{@link spem.SemanticElement#getChildrent <em>Childrent</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Childrent</em>'.
	 * @see spem.SemanticElement#getChildrent()
	 * @see #getSemanticElement()
	 * @generated
	 */
	EReference getSemanticElement_Childrent();

	/**
	 * Returns the meta object for the container reference '{@link spem.SemanticElement#getParent <em>Parent</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the container reference '<em>Parent</em>'.
	 * @see spem.SemanticElement#getParent()
	 * @see #getSemanticElement()
	 * @generated
	 */
	EReference getSemanticElement_Parent();

	/**
	 * Returns the meta object for the container reference '{@link spem.SemanticElement#getDiagram <em>Diagram</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the container reference '<em>Diagram</em>'.
	 * @see spem.SemanticElement#getDiagram()
	 * @see #getSemanticElement()
	 * @generated
	 */
	EReference getSemanticElement_Diagram();

	/**
	 * Returns the meta object for the attribute '{@link spem.SemanticElement#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see spem.SemanticElement#getName()
	 * @see #getSemanticElement()
	 * @generated
	 */
	EAttribute getSemanticElement_Name();

	/**
	 * Returns the meta object for the reference '{@link spem.SemanticElement#getLayout <em>Layout</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Layout</em>'.
	 * @see spem.SemanticElement#getLayout()
	 * @see #getSemanticElement()
	 * @generated
	 */
	EReference getSemanticElement_Layout();

	/**
	 * Returns the meta object for class '{@link spem.MethodPlugin <em>Method Plugin</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Method Plugin</em>'.
	 * @see spem.MethodPlugin
	 * @generated
	 */
	EClass getMethodPlugin();

	/**
	 * Returns the meta object for the containment reference list '{@link spem.MethodPlugin#getRelationships <em>Relationships</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Relationships</em>'.
	 * @see spem.MethodPlugin#getRelationships()
	 * @see #getMethodPlugin()
	 * @generated
	 */
	EReference getMethodPlugin_Relationships();

	/**
	 * Returns the meta object for class '{@link spem.RoleDefinition <em>Role Definition</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Role Definition</em>'.
	 * @see spem.RoleDefinition
	 * @generated
	 */
	EClass getRoleDefinition();

	/**
	 * Returns the meta object for class '{@link spem.TaskDefinition <em>Task Definition</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Task Definition</em>'.
	 * @see spem.TaskDefinition
	 * @generated
	 */
	EClass getTaskDefinition();

	/**
	 * Returns the meta object for class '{@link spem.Relationship <em>Relationship</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Relationship</em>'.
	 * @see spem.Relationship
	 * @generated
	 */
	EClass getRelationship();

	/**
	 * Returns the meta object for the reference '{@link spem.Relationship#getSource <em>Source</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Source</em>'.
	 * @see spem.Relationship#getSource()
	 * @see #getRelationship()
	 * @generated
	 */
	EReference getRelationship_Source();

	/**
	 * Returns the meta object for the reference '{@link spem.Relationship#getTarget <em>Target</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Target</em>'.
	 * @see spem.Relationship#getTarget()
	 * @see #getRelationship()
	 * @generated
	 */
	EReference getRelationship_Target();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	SpemFactory getSpemFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link spem.impl.SPEMDiagramImpl <em>SPEM Diagram</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see spem.impl.SPEMDiagramImpl
		 * @see spem.impl.SpemPackageImpl#getSPEMDiagram()
		 * @generated
		 */
		EClass SPEM_DIAGRAM = eINSTANCE.getSPEMDiagram();

		/**
		 * The meta object literal for the '<em><b>Element</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SPEM_DIAGRAM__ELEMENT = eINSTANCE.getSPEMDiagram_Element();

		/**
		 * The meta object literal for the '{@link spem.impl.SemanticElementImpl <em>Semantic Element</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see spem.impl.SemanticElementImpl
		 * @see spem.impl.SpemPackageImpl#getSemanticElement()
		 * @generated
		 */
		EClass SEMANTIC_ELEMENT = eINSTANCE.getSemanticElement();

		/**
		 * The meta object literal for the '<em><b>Childrent</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SEMANTIC_ELEMENT__CHILDRENT = eINSTANCE.getSemanticElement_Childrent();

		/**
		 * The meta object literal for the '<em><b>Parent</b></em>' container reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SEMANTIC_ELEMENT__PARENT = eINSTANCE.getSemanticElement_Parent();

		/**
		 * The meta object literal for the '<em><b>Diagram</b></em>' container reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SEMANTIC_ELEMENT__DIAGRAM = eINSTANCE.getSemanticElement_Diagram();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute SEMANTIC_ELEMENT__NAME = eINSTANCE.getSemanticElement_Name();

		/**
		 * The meta object literal for the '<em><b>Layout</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SEMANTIC_ELEMENT__LAYOUT = eINSTANCE.getSemanticElement_Layout();

		/**
		 * The meta object literal for the '{@link spem.impl.MethodPluginImpl <em>Method Plugin</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see spem.impl.MethodPluginImpl
		 * @see spem.impl.SpemPackageImpl#getMethodPlugin()
		 * @generated
		 */
		EClass METHOD_PLUGIN = eINSTANCE.getMethodPlugin();

		/**
		 * The meta object literal for the '<em><b>Relationships</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference METHOD_PLUGIN__RELATIONSHIPS = eINSTANCE.getMethodPlugin_Relationships();

		/**
		 * The meta object literal for the '{@link spem.impl.RoleDefinitionImpl <em>Role Definition</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see spem.impl.RoleDefinitionImpl
		 * @see spem.impl.SpemPackageImpl#getRoleDefinition()
		 * @generated
		 */
		EClass ROLE_DEFINITION = eINSTANCE.getRoleDefinition();

		/**
		 * The meta object literal for the '{@link spem.impl.TaskDefinitionImpl <em>Task Definition</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see spem.impl.TaskDefinitionImpl
		 * @see spem.impl.SpemPackageImpl#getTaskDefinition()
		 * @generated
		 */
		EClass TASK_DEFINITION = eINSTANCE.getTaskDefinition();

		/**
		 * The meta object literal for the '{@link spem.impl.RelationshipImpl <em>Relationship</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see spem.impl.RelationshipImpl
		 * @see spem.impl.SpemPackageImpl#getRelationship()
		 * @generated
		 */
		EClass RELATIONSHIP = eINSTANCE.getRelationship();

		/**
		 * The meta object literal for the '<em><b>Source</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference RELATIONSHIP__SOURCE = eINSTANCE.getRelationship_Source();

		/**
		 * The meta object literal for the '<em><b>Target</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference RELATIONSHIP__TARGET = eINSTANCE.getRelationship_Target();

	}

} //SpemPackage
